#define _CRT_SECURE_NO_WARNINGS 1
/*
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
//typedef struct ListNode ListNode;
//struct ListNode* reverseList(struct ListNode* head) {
//    if (head == NULL)
//    {
//        return head;
//    }
//    else
//    {
//        ListNode* n1 = NULL;
//        ListNode* n2 = head;
//        ListNode* n3 = head->next;
//        while (n2 != NULL)
//        {
//            n2->next = n1;
//            n1 = n2;
//            n2 = n3;
//            if (n3 != NULL)
//            {
//                n3 = n3->next;
//            }
//        }
//        return n1;
//    }
//}

int main()
{
    int numsSize = 4;
    int nums[] = { 3, 2, 2, 3 };
    int val = 3;
    int src = 0;
    int dst = 0;
    while (dst < numsSize - 1)
    {
        if (nums[dst] != val)
        {
            nums[src] = nums[dst];
            src++;
        }
        dst++;
    }
    return src + 1;
	return 0;
}